#ifndef FOLLOWEVENT_HPP_
#define FOLLOWEVENT_HPP_

#include <kit/event/Event.hpp>

namespace KitEvent
{
	/**
	 * This is a representation of follow event defined in the task. The
	 * event is identified by letter F, as I silently assumed that events incoming to
	 * the system are correct. For more precise explanation see Event class, as it is
	 * the base class of FollowEvent.
	 */
	class FollowEvent : public Event
	{
	public:
		FollowEvent():Event("F"){}
		FollowEvent(KitMessage::Message * iMessage):Event(iMessage, "F"){}
        virtual ~FollowEvent();
        virtual Event * makeCopy(KitMessage::Message * iMessage){return new FollowEvent(iMessage);}
        virtual void execute(KitUser::UserMap * iUsers);
        virtual bool isValid(KitUser::UserMap * iUsers);
	private:

	};
}

#endif /* FOLLOWEVENT_HPP_ */
